feat: Migrate to Node.js 24 LTS#6063
Open
Pyatakov wants to merge 15 commits into
Open
Conversation
Test Results 32 files ±0 64 suites ±0 6m 22s ⏱️ + 1m 58s For more details on these failures, see this check. Results for commit 409c0cf. ± Comparison against base commit 0bb0cbb. ♻️ This comment has been updated with latest results. |
a9a04cd to
dc9b175
Compare
30efd7b to
07a68f9
Compare
This was referenced Jun 15, 2026
548e45b to
712d475
Compare
eae385c to
baa051a
Compare
01d5fd6 to
82786f5
Compare
Bump Node.js base image to 24.18.0-alpine across all Dockerfiles. Update dependencies and devDependencies for multiple services and related type packages. Refactor TypeScript configuration files to use ES2023, NodeNext module resolution, and update strictness and source map settings for consistency. Upgraded various dependencies in e2e-tests and frontend package.json and package-lock.json files. Update package-lock.json Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com> Update tsconfig.production.json Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
All GitHub Actions workflow files now use Node.js version 24.18.0 instead of 20.20.2 Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Consolidated the import of FindOptions from '@mikro-orm/core' in database-server.ts and db-helper.ts, removing unnecessary type-only imports. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Deleted multiple obsolete test files from guardian-service and policy-service, including API and unit tests Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Replaces deprecated 'url.parse' with 'new URL' for node address parsing. Updates file upload logic to wrap files in Uint8Array before creating Blob for compatibility with IPFS providers. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Added "noUnusedLocals" and "noUnusedParameters" TypeScript compiler options to all project and production tsconfig.json files Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Cleaned up unused imports and variables Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Deleted helia-node.ts, ipfs-node.ts, and kudo-node.ts from the IPFS loaders directory as these files are no longer needed Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Updated all imports of Node.js core modules to use the 'node:' prefix for improved clarity and compatibility with modern Node.js standards. This change affects various files across multiple services, replacing imports such as 'fs', 'path', 'process', 'crypto', and others with their 'node:' equivalents. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Under module:NodeNext, default imports of CJS packages can resolve to the
module namespace rather than the runtime export, and some dep bumps moved
public types out of the package's barrel. Adjusts four call sites:
- api-gateway cache-provider: switch ioredis to a named import so Redis
resolves as a class.
- auth-service metrics: import expressMiddleware by name from
prometheus-api-metrics instead of the default.
- auth-service meeco.service: drop the base64url package in favor of
Buffer.toString('base64url') (built into Node since 16).
- policy-service math-context: derive BoxedExpression from
ComputeEngine['box']'s return type since @cortex-js/compute-engine 0.27
no longer re-exports the interface at the top level.
Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Regenerate yarn.lock to upgrade multiple dependencies and transitive packages. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Insert "rootDir" (mostly "./src", guardian-cli uses ".") into many tsconfig.json and tsconfig.production.json files across services and libraries to standardize TypeScript compilation roots. Also remove/adjust some legacy entries (removed baseUrl in several configs, replaced empty paths/removed compileOnSave) to ensure consistent outDir/sourceMap behavior and reliable builds across environments. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Refactor guardian-cli helpers to use the correct Node path APIs and remove unused code: replace incorrect Path usages with path, update imports, and remove an unused _splitContractBytecode helper and an unused path import where no longer required. Fix a typo in a JSDoc param (Network). Simplify SDK imports in contract helper by removing unused symbols. Update guardian-cli package.json: change bin to string form and bump solc from 0.8.28 to 0.8.35. Add guardian-cli to root workspaces and regenerate yarn.lock entries to reflect the solc bump and workspace/package changes. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
Normalize import paths to use relative imports so modules resolve correctly. No functional changes. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
- Update Node.js requirement to v24.15+ across all documentation files. - Bump NATS to 2.9.25 and update IPFS storage options to include Storacha, Filebase, and Kubo. - Update built-with documentation to reflect current tech stack: NestJS instead of Express, Verifiable Credentials JS instead of Transmute, and PrimeNG for frontend. Signed-off-by: Alex Piatakov <alex.piatakov@swirldslabs.com>
82786f5 to
409c0cf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
tsconfig.jsontomodule: NodeNext/moduleResolution: NodeNext/target: ES2023/lib: ["ES2023"]; alignstrict: falseconsistently in dev and production; enablenoUnusedLocals: trueeverywhere it was reasonable.jsextensions to relative imports required by NodeNext (5 source files)node:prefix; replaceecosystem.config.js's__dirnamewithimport.meta.dirnamemongodbas a direct dep incommon,indexer-common,guardian-service,indexer-service,policy-serviceso the dep graph is honest (deduped against@mikro-orm/mongodb's nested copy)ioredis,prometheus-api-metrics, and@cortex-js/compute-engine 0.27(which no longer re-exportsBoxedExpression); dropbase64urlin favor of nativeBuffer.toString('base64url')worker-serviceIPFS client: pass the URL string directly tokubo-rpc-client.create()instead of decomposing it into protocol/host/port (the decomposed form broke for default-port URLs likehttp://...:80after theurl.parse→new URLswitch)engines.node: ">=24.15.0"to root and 23 backendpackage.jsonfiles (skippedcontractssince its Node version is governed by hardhat, not Guardian)module-alias/rewiredevDeps from 6 services and 6 vestigialimport 'module-alias/register.js'lines; delete 9 obsolete test files that depended on rewire and couldn't run under ESMnoUnusedLocals